import time
import Day11.d05_hello_pb2
import Day11.d05_hello_pb2_grpc
import grpc
from concurrent.futures import ThreadPoolExecutor

# 1.自定义服务类,并集成自动生成的服务类
class HelloService(Day11.d05_hello_pb2_grpc.HelloServicer):
    # 重写rpc服务方法
    # request就是客户端传过来的参数对象,context上下文,不用理会
    def say(self, request, context):
        # 获取参数
        name = request.name
        print(name)

        # 构建响应对象
        req = Day11.d05_hello_pb2.Response()
        req.msg = '你好! {}'.format(name)

        # 返回响应对象
        return req
# 2.创建rpc服务器, 指定线程数
server = grpc.server(ThreadPoolExecutor(max_workers=10))

# 3.把自定义的服务类对象添加到server中
Day11.d05_hello_pb2_grpc.add_HelloServicer_to_server(HelloService(), server)

# 4.绑定ip和端口
server.add_insecure_port('127.0.0.1:8888')

# 5.启动rpc服务器,不阻塞
server.start()

# 6.添加代码,防止退出
while 1:
    time.sleep(5*60)